home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club (Business) 1997 July / Software of the Month Club - Business (Volume 239) (July 1997).iso / pc / code / g.dxr / 00012_GAnimator.ls < prev    next >
Encoding:
Text File  |  1996-02-15  |  1.7 KB  |  58 lines

  1. property ancestor, pPathFunctionData, pCurrentLoc, pStartLoc
  2.  
  3. on birth me, arguments
  4.   set the ancestor of me to birth(script "Animator", arguments)
  5.   set the pPathFunctionData of me to the pathData of arguments
  6.   set pStartLoc to the location of arguments
  7.   set pCurrentLoc to pStartLoc
  8.   return me
  9. end
  10.  
  11. on moveSprite me
  12.   if the pPathFunctionData of me = #PresentTrendbarStockLoc then
  13.     set theResult to PresentTrendbarStockLoc(me)
  14.   else
  15.     if the pPathFunctionData of me = #PastTrendbarStockLoc then
  16.       set theResult to PastTrendbarStockLoc(me)
  17.     end if
  18.   end if
  19.   set the pCurrentLoc of me to theResult
  20.   set the loc of sprite the pChannel of me to the pCurrentLoc of me
  21. end
  22.  
  23. on PresentTrendbarStockLoc me
  24.   set startloc to the pCurrentLoc of me
  25.   set V to the locV of startloc
  26.   if V < 0 then
  27.     return point(-1000, -1000)
  28.   end if
  29.   set H to the locH of startloc + 2
  30.   if H > 526 then
  31.     set aloc to point(34, 60)
  32.   else
  33.     set aloc to point(H, V)
  34.   end if
  35.   return aloc
  36. end
  37.  
  38. on PastTrendbarStockLoc me
  39.   set PresentOBJAnim to getaProp(getaProp(gObjects, #PresentTrendBar), #animator)
  40.   set pastOffsetH to getaProp(getaProp(gObjects, #PresentTrendBar), #pastOffsetH)
  41.   set timeInterval to getaProp(getaProp(gObjects, #ShortTermStock), #timeInterval)
  42.   set timeScale to getaProp(getaProp(gObjects, #ShortGraphs), #timeScale)
  43.   set PresentLoc to the pCurrentLoc of PresentOBJAnim
  44.   set pastV to the locV of PresentLoc
  45.   if pastV < 0 then
  46.     return point(-1000, -1000)
  47.   end if
  48.   set pastH to the locH of PresentLoc - pastOffsetH - (timeScale * (timeInterval - 5))
  49.   if pastH > 526 then
  50.     set pastH to 34 + pastH - 526
  51.   else
  52.     if pastH < 34 then
  53.       set pastH to 526 - (34 - pastH)
  54.     end if
  55.   end if
  56.   return point(pastH, pastV)
  57. end
  58.